今天是中秋節,筆者在此祝大家中秋節快樂!今天會繼續完成昨天的建立模型,以及會開始進行訓練囉!那我們就開始啦~
前面1~3步驟請查閱[Day15]
4. 建立卷積層2與持化層2
分為兩部分講解,如下所示:
注意!卷積運算時,我們所設定的參數padding='same'
,由於不改變影像的大小,所以大小還是14X14
一樣逐一仔細講解程式碼:
* filters=36: 建立36個濾鏡filter weight
* kernel_size=(5, 5): 每一個濾鏡是5X5大小
* padding='same': 這串程式碼可以讓卷積運算所產生的卷積影像大小不變(如上所述)
* activation='relu': 設定激活函數ReLU
pool_size=(2, 2)
,執行後可以將原本36個14X14影像縮小成7X7model.add(Dropout(0.25))
,這樣可以去除25%的神經元,避免機器過度學習平坦層
建立平坦層需要鍵入指令,如下所示:
我們剛剛有製作出了36個7X7的持化層2,請將它轉化為一維向量。計算長度為36X7X7=1764,這樣就可對應至1764神經元囉!
隱藏層
輸入指令model.add(Dense(128, activation='relu'))
可建立隱藏層,總共128神經元
注意!與之前相同,再鍵入執行碼model.add(Dropout(0.5))
,這樣可以去除50%的神經元,避免機器過度學習
輸出層
輸入以下指令:
藉由上述程式碼可看到,總共會有10個神經元對應至0~9,並使用softmax進行轉換
查看摘要
鍵入程式碼print(model.summary())
可查看模型摘要
進行訓練
今天我們還不會正式進入訓練的部分,但會先定義訓練的方法
訓練前,我們必須要先經過compile(編譯)的方法進行相關之設定,如以下程式碼所示:
透過此種方法需要輸入一些參數,如下所示:
明天會就上方的函數稍作解釋,就會開始進行訓練啦!明天繼續努力囉!
Reference: 林大貴(2019):TensorFlow+Keras 深度學習人工智慧實務應用。新北市:博碩文化